The present invention generally relates to the use of data tables to represent and manipulate hierarchical data in spreadsheet and database software applications and interfaces.
There exist a wide variety of spreadsheet and database software which can render data and provide an interface for a user to input and manipulate data in a variety of forms, including tables (e.g. sheets and grids), forms, charts, and reports.
Such software can provide two-dimensional data tables comprising a matrix of cells arranged in rows and columns in which a user can insert numbers, text, graphics, functions, and formulas. Such software can allow commands to be inserted and used by the software to calculate or render data or execute an action. FIG. 1 illustrates an exemplary two-dimensional data table.
Typically, a software application provides extensive formatting options for a data table whereby a user, or software functions, can modify the color, font, size, alignment, content type and more of individual cells, rows and columns directly, or conditionally based on parameters.
Generally, a data table structure provides a rigid matrix whereby changing the width of a column changes the width of all cells in that column, and, similarly, changing the height of a row changes the height of all cells in that row.
Spreadsheets and databases use data tables to represent data and they can also organize that data as hierarchical information structures to show relationships.
Various methods and systems exist to represent and manipulate data hierarchies in data tables. These can generally be described as outlining systems.
Exemplary outlining capabilities that might be desired by a user include: creating hierarchies from tables from data that show how items (rows and columns) are related; selecting multiple items (e.g. rows); displaying additional rows or columns for summary data, totals or other metadata; displaying headings adjacent to relevant data; and maintaining hierarchies when items are added, moved, deleted and hidden.
There are a limited number of outlining systems available that are either manually applied to data by a user, or automatically applied by software using algorithms and rules.
Currently available outlining systems generally provide these capabilities by representing levels in a hierarchical relationship by indenting row content or grouping rows or columns.
For example, FIG. 2 illustrates an exemplary formatted data table based on the data included in the data table of FIG. 1 where an outlining system involving the indentation of cell data has been utilized. As illustrated, rather than having a first column for a “Brand” identification and a second column for a “Product” identification, the data table of FIG. 2 groups rows by their brand identification and includes that brand identification in a row before the grouped rows.
FIG. 3 illustrates another exemplary formatted data table based on the data included in the data table of FIG. 1 where an outlining system is utilized that includes internal grouping functionality.
FIG. 4 illustrates another exemplary formatted data table based on the data included in the data table of FIG. 1 where an outlining system is utilized that includes external vertical grouping functionality, and FIG. 5 illustrates yet another exemplary formatted data table based on the data included in the data table of FIG. 1 where a similar outlining system is utilized that includes external horizontal grouping functionality.
FIG. 6 illustrates another exemplary formatted data table based on the data included in the data table of FIG. 1 where an outlining system is utilized that includes sub-grid functionality.
FIG. 7 illustrates another exemplary formatted data table based on the data included in the data table of FIG. 1 where an outlining system is utilized that includes pivot table functionality.
While known outlining systems can be useful, they can require the indentation of cell data that increases cell width and overall area to represent a hierarchy, require the use of additional connecting lines and buttons to be added to a spreadsheet or grid, require the use of an expand and collapse control external to a spreadsheet or grid, require use of sub-grids limited by column widths applied to all cells in the same column, and disperse data in a sparse matrix that can make review more difficult.
A need exists for improvement in data outlining systems. This, and other needs, are addressed by one or more aspects of the present invention.